package com.chinatelecom.ifree.business.dao.order;

import java.util.Date;
import java.util.List;

import com.chinatelecom.ifree.business.domain.order.OrderEntity;

public interface OrderDao {
	/**
	 * 根据手机号码查询预约信息
	 * 
	 * @param mobile
	 *            手机号
	 * @return 预约实体
	 * @throws Exception
	 */
	public OrderEntity getOrderByMobile(String mobile) throws Exception;

	/**
	 * 保存预约记录
	 * 
	 * @param order
	 *            预约实体
	 * @throws Exception
	 */
	public void saveOrder(OrderEntity order) throws Exception;

	/**
	 * 保存预约记录并返回F码
	 * 
	 * @param order
	 *            预约实体
	 * @throws Exception
	 */
	public OrderEntity saveOrderInfo(OrderEntity order) throws Exception;

	/**
	 * 获取预约总数量
	 * 
	 * @return 已预约数量
	 * @throws Exception
	 */
	public long getTotalOrder() throws Exception;

	/**
	 * 根据时间区间来查询预约订单
	 * 
	 * @param fromDate
	 *            开始时间
	 * @param toDate
	 *            结束时间
	 * @return 返回指定时间段内的预约信息
	 * @throws Exception
	 */
	public List<OrderEntity> getOrderInfo(Date fromDate, Date toDate, int start, int end) throws Exception;

	/**
	 * 根据时间查询预约总量
	 * 
	 * @param fromDate
	 *            开始时间
	 * @param toDate
	 *            结束时间
	 * @return
	 * @throws Exception
	 */
	public long getTotalOrder(Date fromDate, Date toDate) throws Exception;
}
